C.S.Burner 🪙 ━►🔥GIT Node
scripts/ci/github-verify-frozen-runtime.sh master (2bf00cb3) Text, 3.39 KB
T8b949e#!/usr/bin/env bash
T8b949e# Run import probes inside the cx_Freeze binary (aiohttp/email/LXST natives).
T8b949e# On Apple Silicon, darwin-x64 trees must be exec'd with arch -x86_64. A
T8b949e# universal2 freeze stub otherwise starts as arm64 and dlopen fails on
T8b949e# x86_64 zlib.cpython-*-darwin.so.
Tffa657set -euo pipefail
Te6edf3ROOTTff7b72=Ta5d6ff"Tff7b72$(Tffa657cd Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Te6edf3$0Ta5d6ff"Tff7b72)Ta5d6ff/../..Ta5d6ff" Tff7b72&& Tffa657pwdTff7b72)Ta5d6ff"
Te6edf3BUILD_EXETff7b72=Ta5d6ff"Tffd700${Te6edf31Tff7b72:-Tffd700${Te6edf3ROOTTffd700}Tb4b4b4/build/exeTffd700}Ta5d6ff"
Tff7b72if Tff7b72[Tff7b72[ ! -d Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffcx_Freeze output not found at Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ ! -d Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/libTa5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tff7b72for sub Tff7b72in Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff"/*Tb4b4b4; Tff7b72do
Tff7b72if Tff7b72[Tff7b72[ -d Ta5d6ff"Tffd700${Te6edf3subTffd700}Ta5d6ff/libTa5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3BUILD_EXETff7b72=Ta5d6ff"Tffd700${Te6edf3subTffd700}Ta5d6ff"
Tff7b72break
Tff7b72fi
Tff7b72done
Tff7b72fi
Te6edf3EXETff7b72=Ta5d6ff""
Tff7b72for name Tff7b72in ReticulumMeshChatX ReticulumMeshChatX.exeTb4b4b4; Tff7b72do
Tff7b72if Tff7b72[Tff7b72[ -x Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/Tffd700${Te6edf3nameTffd700}Ta5d6ff" Tff7b72]Tff7b72] Tff7b72|| Tff7b72[Tff7b72[ -f Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/Tffd700${Te6edf3nameTffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3EXETff7b72=Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/Tffd700${Te6edf3nameTffd700}Ta5d6ff"
Tff7b72break
Tff7b72fi
Tff7b72done
Tff7b72if Tff7b72[Tff7b72[ -z Ta5d6ff"Tffd700${Te6edf3EXETffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen runtime verify: backend executable not found under Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ ! -x Ta5d6ff"Tffd700${Te6edf3EXETffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
chmod +x Ta5d6ff"Tffd700${Te6edf3EXETffd700}Ta5d6ff"
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ ! -d Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/lib/emailTa5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"frozen runtime verify: lib/email missing (stdlib email must not live only in library.zip)" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ ! -f Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/lib/email/header.pyTa5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657shopt -s nullglob
Te6edf3headersTff7b72=Tff7b72(Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/lib/email/headerTa5d6ff"*.pycTff7b72)
Tffa657shopt -u nullglob
Tff7b72if Tff7b72[Tff7b72[ Tffd700${#Te6edf3headersTb4b4b4[@]Tffd700} -eq T79c0ff0 Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"frozen runtime verify: email.header module missing under lib/email" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72fi
Te6edf3run_prefixTff7b72=Tff7b72(Tff7b72)
Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tff7b72$(uname -sTff7b72)Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"Darwin" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3host_archTff7b72=Ta5d6ff"Tff7b72$(uname -mTff7b72)Ta5d6ff"
Tff7b72case Ta5d6ff"Tffd700${Te6edf3host_archTffd700}Ta5d6ff" Tff7b72in
x86_64 Tb4b4b4| amd64Tff7b72) Te6edf3host_archTff7b72=x86_64 Tb4b4b4;Tb4b4b4;
arm64 Tb4b4b4| aarch64Tff7b72) Te6edf3host_archTff7b72=arm64 Tb4b4b4;Tb4b4b4;
Tff7b72esac
Te6edf3wantTff7b72=Ta5d6ff""
Tff7b72case Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff" Tff7b72in
*darwin-x64*Tff7b72) Te6edf3wantTff7b72=x86_64 Tb4b4b4;Tb4b4b4;
*darwin-arm64*Tff7b72) Te6edf3wantTff7b72=arm64 Tb4b4b4;Tb4b4b4;
Tff7b72esac
Te6edf3exe_archsTff7b72=Ta5d6ff""
Tff7b72if Tffa657command -v lipo >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Te6edf3exe_archsTff7b72=Ta5d6ff"Tff7b72$(lipo -archs Ta5d6ff"Tffd700${Te6edf3EXETffd700}Ta5d6ff" T79c0ff2>/dev/null Tff7b72|| Tffa657trueTff7b72)Ta5d6ff"
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ -z Ta5d6ff"Tffd700${Te6edf3wantTffd700}Ta5d6ff" Tff7b72&& -n Ta5d6ff"Tffd700${Te6edf3exe_archsTffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3wantTff7b72=Ta5d6ff"Tff7b72$(awk Ta5d6ff'{print $1}' Tff7b72<<<Ta5d6ff"Tffd700${Te6edf3exe_archsTffd700}Ta5d6ff"Tff7b72)Ta5d6ff"
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ -n Ta5d6ff"Tffd700${Te6edf3wantTffd700}Ta5d6ff" Tff7b72&& -n Ta5d6ff"Tffd700${Te6edf3exe_archsTffd700}Ta5d6ff" Tff7b72]Tff7b72] Tff7b72&& ! grep -qw Ta5d6ff"Tffd700${Te6edf3wantTffd700}Ta5d6ff" Tff7b72<<<Ta5d6ff"Tffd700${Te6edf3exe_archsTffd700}Ta5d6ff"Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen runtime verify: Tffd700${Te6edf3EXETffd700}Ta5d6ff archs=Tffd700${Te6edf3exe_archsTffd700}Ta5d6ff cannot run as Tffd700${Te6edf3wantTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff" darwin-x64 must ship an x86_64 (or universal) ReticulumMeshChatX stub." >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff" thin-backend-mach-o.sh must lipo-thin that executable, not only .so/.dylib." >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ -n Ta5d6ff"Tffd700${Te6edf3wantTffd700}Ta5d6ff" Tff7b72&& Ta5d6ff"Tffd700${Te6edf3wantTffd700}Ta5d6ff" !Tff7b72= Ta5d6ff"Tffd700${Te6edf3host_archTffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tff7b72if ! Tffa657command -v arch >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen runtime verify: need arch -Tffd700${Te6edf3wantTffd700}Ta5d6ff to run Tffd700${Te6edf3EXETffd700}Ta5d6ff on Tffd700${Te6edf3host_archTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72if ! arch Ta5d6ff"Ta5d6ff-Tffd700${Te6edf3wantTffd700}Ta5d6ff" /usr/bin/true >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen runtime verify: arch -Tffd700${Te6edf3wantTffd700}Ta5d6ff failed on host Tffd700${Te6edf3host_archTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff" Install Rosetta 2 to probe the darwin-x64 freeze tree on Apple Silicon." >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Te6edf3run_prefixTff7b72=Tff7b72(arch Ta5d6ff"Ta5d6ff-Tffd700${Te6edf3wantTffd700}Ta5d6ff"Tff7b72)
Tffa657echo Ta5d6ff"Ta5d6fffrozen runtime verify: using arch -Tffd700${Te6edf3wantTffd700}Ta5d6ff (host Tffd700${Te6edf3host_archTffd700}Ta5d6ff)Ta5d6ff"
Tff7b72fi
Tff7b72fi
Tff7b72if Tff7b72[Tff7b72[ Tffd700${#Te6edf3run_prefixTb4b4b4[@]Tffd700} -gt T79c0ff0 Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Ta5d6ff"Tffd700${Te6edf3run_prefixTb4b4b4[@]Tffd700}Ta5d6ff" Ta5d6ff"Tffd700${Te6edf3EXETffd700}Ta5d6ff" --meshchatx-run-module meshchatx.src.backend.frozen_freeze_probe
Tff7b72else
Ta5d6ff"Tffd700${Te6edf3EXETffd700}Ta5d6ff" --meshchatx-run-module meshchatx.src.backend.frozen_freeze_probe
Tff7b72fi
Tffa657echo Ta5d6ff"Ta5d6fffrozen runtime verify: OK (Tffd700${Te6edf3EXETffd700}Ta5d6ff)Ta5d6ff"
Served by rngit 1.4.2 - Generated in 0.02s